1. Field of the Invention
The present invention relates to a computer system, and deals more particularly with a method, system, and computer-readable code for filtering message content based on dynamic environmental factors.
2. Description of the Related Art
It is commonplace today for computer users to connect their machines to other computers, known as "servers", through a network. The network may be a private network, such as a corporate intranet of networked computers that is accessible only to computer users within that corporation. Or, it may a public network, such as the Internet or World Wide Web. The Internet is a vast collection of computing resources, interconnected as a network, from sites around the world. The World Wide Web (referred to herein as the "Web") is that portion of the Internet which uses the HyperText Transfer Protocol ("HTTP") as a protocol for exchanging messages. (Alternatively, other protocols such as the "HTTPS" protocol can be used, where this protocol is a security-enhanced version of HTTP.)
The user may connect his computer to a server using a "wired" connection, or a "wireless" connection. Wired connections are those that use physical media such as cables and telephone lines, whereas wireless connections use media such as satellite links, radio frequency waves, and infrared waves. Many connection techniques can be used with these various media, such as: using the computer's modem to establish a connection over a telephone line; using a Local Area Network (LAN) card such as Token Ring or Ethernet; using a cellular modem to establish a wireless connection; etc. The user's computer may be any type of computer processor, including laptop, handheld or mobile computers; vehicle-mounted devices; desktop computers; mainframe computers; etc., having processing and communication capabilities. The remote server, similarly, can be one of any number of different types of computer which have processing and communication capabilities. These techniques are well known in the art, and the hardware devices and software which enable their use are readily available. Hereinafter, the user's computer will be referred to as a "workstation", and use of the terms "workstation" or "server" refers to any of the types of computing devices described above.
A user of the Internet typically accesses and uses the Internet by establishing a network connection through the services of an Internet Service Provider (ISP). An ISP provides computer users the ability to dial a telephone number using their workstation modem (or other connection facility, such as satellite transmission), thereby establishing a connection to a remote computer owned or managed by the ISP. This remote computer then makes services available to the user's computer, hence such computers are often referred to as "servers". Typical services include: providing a search facility to search throughout the interconnected computers of the Internet for items of interest to the user; a browse capability, for displaying information located with the search facility; and an electronic mail facility, with which the user can send and receive mail messages to and from other computer users. Similar facilities are typically available when the user connects to a server in an intranet, or an extranet (that is, a network owned or managed by another company, and which provides services in a similar manner to the Internet or an intranet).
The user working in a networked environment will have software running on his workstation to allow him to create and send requests for information to a server, and to see the results. When the user connects to the Web, these functions are typically combined in software that is referred to as a "Web browser", or "browser". After the user has created his request using the browser, the request message is sent out into the Internet for processing. The target of the request message is one of the interconnected servers in the Internet network. That server will receive the message, attempt to find the data satisfying the user's request, format that data for display with the user's browser, and return the formatted response to the browser software running on the user's workstation. The response is often in the form of a full-screen display, referred to as a "Web page", that may contain text, graphics, images, sound, video, etc. The user will also typically have an electronic mail ("e-mail") software package installed on his workstation, which enables him to send and receive e-mail to and from the workstation of other computer users. Additionally, the user may have software on his workstation that supports sending requests to, and receiving responses from, automated file delivery services. For example, the File Transfer Protocol ("FTP") may be used to request that a file stored in a remote location be delivered to the user's workstation.
These are examples of a client-server model of computing, where the machine at which the user requests information is referred to as the client, and the computer that locates the information and returns it to the client is the server. In the Web environment, the server is referred to as a "Web server". The client-server model may be extended to what is referred to as a "three-tier architecture". This architecture places the Web server in the middle tier, where the added tier typically represents data repositories of information that may be accessed by the Web server as part of the task of processing the client's request. This three-tiered architecture recognizes the fact that many client requests do not simply require the location and return of static data, but require an application program to perform processing of the client's request in order to dynamically create the data to be returned. In this architecture, the Web server may equivalently be referred to as an "application server".
As more people connect their workstations to networks, the number of messages and files being sent is skyrocketing. (Hereinafter, the terms "message" and "file" are used interchangeably when referring to data being sent through a network, unless otherwise stated.) Coupled with this increase in the number of network users and files is an increase in the size of the files commonly being sent. For example, a short e-mail message with a relatively simple graphic image attached may be on the order of several hundred thousand bytes of data. Users may send and receive many such files over the course of a day's work, or in their personal network communications. At the same time, the popularity of limited-storage workstations (such as handheld computers), as well as the popularity of connecting over media that uses graduated pricing (e.g. based on connect time), is also growing. Cellular services are a common example of graduated pricing based on connect time. Typically, a cellular user subscribes to a billing plan where he may have a certain fixed number of "free minutes" (or other units) per month, incurring additional charges for connection time after he exceeds this fixed number.
Computer users need a way to manage the volume of data received at their workstations, in a manner that accounts for these environmental factors. Reducing the volume of data received conserves workstation storage space, and reduces connect time. Users often have no way of knowing how large the files sent to them will be, and thus cannot control the volume of data they receive simply by tailoring the requests they make. Typically, it is the server that determines the size of the file that the user will receive, and the user's only option (if he has one at all) is to receive the entire file or to receive nothing.
One way of reducing the volume of data received is to apply a content-reducing "transcoding filter" to a file before it is sent by the server. Transcoding filters are software applications that algorithmically reduce the number of bits used to represent information while still retaining its essential content. Such filters are known in the art. For example, a transcoding filter can be applied to an image that was rendered using 256 colors (also known as "8-bit color"), to create a simpler version of the same image which uses only 16 colors. Or, the image could be converted to grayscale using a different transcoding filter. This type of filtering process greatly reduces the number of bytes in the resulting file.
However, a transcoding algorithm is typically selected statically. For example, a systems administrator may configure a server to apply 256-color to 16-color reduction for all image files being sent over wireless connections. Recently, transcoding systems (that is, a system which applies a transcoding filter) have been extended to select a filter based on current network traffic conditions. For example, if the transcoding system detects that the network over which it will send data is lightly loaded, it might send an image file without applying any content reduction filters; if it finds that the network is very heavily loaded, it might apply a transcoding filter to reduce the number of bits as much as possible.
There are no known systems that take into account dynamic environmental factors related directly to the user and his workstation when selecting a content filter. If an image file is requested, for example, the same huge image representation will be sent to the user regardless of whether his workstation has sufficient storage available for receiving the file and regardless of the cost of the connection over which he will receive the file.
Accordingly, a need exists for a technique by which environmental factors can be used to dynamically filter the content being delivered from a server to a user's workstation. The proposed technique uses a rule-based approach to select an appropriate filter, enabling varying types and degrees of content reduction to be applied based on currently-existing conditions. This provides a way to manage the volume of data received by the user, without requiring input from the user, by reducing the amount of data sent to him by a server.